Computer functionality is achieved through processes. A process is a program in execution including several components in memory, such as program code, data, and a process stack for holding temporary data (subroutine parameters, return addresses, temporary variables, etc). The process includes an address space in memory (i.e., process memory) which contains these components.
Processes need to consume or expose functionality in order to produce output. Often, functionality is provided by a third party as a shared object, or library. These shared objects may be loaded into a process at runtime. When loaded into memory, these processes have access to the complete process memory.